package cn.itcast.dao.system;

import cn.itcast.domain.system.Module;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 */
public interface ModuleDao {

    //根据id查询
    Module findById(String moduleId);

    //根据id删除
    int delete(String moduleId);

    //添加用户
    int save(Module module);

    //更新用户
    int update(Module module);

	/**
	 * 不同的租用企业（传智播客，江南皮革厂）
	 * 看到的菜单应该一样
	 */
	//查询全部
    List<Module> findAll();

    //根据角色id查询角色可操作的模块列表
	List<Module> findByRoleId(String roleId);

	//根据角色id删除角色模块中间表数据
	void deleteRoleModule(String roleId);

	//向角色模块中间表中保存数据
	void saveRoleModule(@Param("roleId") String roleId, @Param("moduleId") String moduleId);

	//根据belong查询模块
	List findByBelong(int belong);

	//根据用户id，多个表联合查询用户的模块列表（用户--角色--模块）
	List findByUserId(String id);
}